// 存放仓库该分类（user）下的数据, export const state = {}是固定的格式
export const state = () => {
  return {
    userInfo: {
      token: "",
      user: {}
    }
  };
};

// 如果需要 修改状态数据，必须先定义 修改方法，声明mutations
export const mutations = {
  // 这里的每一个属性都是一个函数
  setuserInfo(state, data) {
    // mutations 里面可以接收两个参数
    // 第一个是 state 当前仓库本身，
    // 第二个是调用是传来的参数
    state.userInfo = data;
  }
};

//actions可以用来存放一些公共的方法，多个组件或者项目通用的方法
// 顺带的：并且可以调用mutations来修改state
export const actions = {
  // 登录请求
  login({ commit }, data) {
    // 这个函数可以接收两个参数
    // 1.当前仓库store本身
    // 2.外部调用时额外的数据 --不固定
    return this.$axios({
      url: "/accounts/login",
      method: "POST",
      data
    }).then(res => {
      console.log(res.data);
      if (res.data.token) {
        commit("setuserInfo", res.data);
      }
      return res;
    });
  },

  // 发送手机验证码
  sendCaptchag(storte, tel) {
    return this.$axios({
      url: "/captchas",
      method: "POST",
      data: {
        tel
      }
    }).then(res => {
      const { code } = res.data;
      return code;
    });
  }
  // 注册请求
  // register({ commit }, data) {
  //   return this.$axios({
  //     url: "/accounts/register",
  //     method: "post",
  //     data
  //   }).then(res => {
  //     commit("setuserInfo", res.data);
  //     return res;
  //   });
  // }
};
